Флаги не меняются.
Команда:
STOS destination-string
Логика:
(ES:DI) = Accumulator if DF = 0 DI = DI + n ; n = 1 для байта, 2 - для слова else DI = DI - n
Команда STOS копирует байт или слово, расположенное в AL или AX, в место памяти, на которое указывает (ES:DI), а также инкрементирует или декрементирует DI (в зависимости от состояния флага направления DF), чтобы подготовиться к копированию аккумулятора в следующую ячейку (байт или слово) памяти.
Операнды | Такт байты (слова) | Обращения | Байты | Пример |
dest-str | 11(15) | 1 | 1 | STOS WORD_ARRAY |
dest-str (повтор) | 9+10(14) | /rep 1/rep | 1 | REP STOS WORD_ARRAY |
Примечания:
Эта команда всегда ассемблируется или как STOSB, запись в строку из байтов, или как STOSW, запись в строку из слов, в зависимости от того, указывает ли destination-string на строку байтов или на строку слов. Однако, в обоих случаях Вы должны в явном виде загрузить в регистр DI смещение строки.
Пример.
Если команду записи в строку использовать в сочетании с префиксом REPBUFFER, в 0 :
MOV AL,0 ;значение,которое присваиваем ;при инициализации LEA DI,BUFFER ;загружаем стартовый адрес блока памяти MOV CX,100 ;размер блока памяти CLD ;будем двигаться в прямом направлении REP STOS BUFFER ;сравните эту строку с примером для STOSB